Method and system for enabling the sharing of information between applications on a computing device

ABSTRACT

A method and system for enabling the sharing of information between a first application and a second application on a computing device are described herein. The method includes the steps of receiving a global search request through the first application and—in response to the reception of the global search request—prompting for a search term from a user. The method further includes the steps of receiving the search term and—based on the received search term—automatically presenting one or more corresponding candidate elements associated with the second application for selection by the user. In addition, the method includes the steps of receiving the selection of at least one of the candidate elements and linking the selected candidate element with the first application such that a user may access the selected candidate element from the first application.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to and is a divisional of U.S. patentapplication Ser. No. 14/730,517 that was filed on Jun. 4, 2015 in thename of Carsten Michael Dietz and entitled “Method and System forEnabling the Sharing of Information Between Applications on a ComputingDevice,” now having an issue date of Mar. 13, 2018 as U.S. Pat. No.9,916,079, which claims priority to U.S. Provisional Patent ApplicationNo. 62/008,280, filed on Jun. 5, 2014. Each of the above identifiedpriority applications is hereby incorporated herein by reference in itsentirety.

FIELD OF TECHNOLOGY

The present description relates to systems and methods for enabling thesharing of information between applications on a computing device.

BACKGROUND

To perform or facilitate business or personal tasks in their dailylives, many people rely on applications installed on computing devices.On an individual basis, such applications are typically intended toaddress a particular function or a limited number of functions. As anexample, a calendar application may be able to schedule an event andinvite potential participants, while an email application can enable theparticipants to message each other about the event. While eachapplication on its own may be useful for some purposes, performance of atask may require, or may be best performed through, the use of multipleapplications. Although multiple applications typically can operateindependently of each other, cooperation between them, such as throughinformation sharing, may provide a better solution in some cases.

As the number of applications available to users of computing devicescontinues to grow, some users may want or need to utilize severalapplications together to perform tasks. Accordingly, setting up thesharing of information between multiple applications may be difficultand confusing for a typical user and may be tedious even for an advanceduser, particularly when the number of applications involved is large. Assuch, methods that enable sharing of information between multipleapplications can enable users to perform related tasks in a moreefficient and user-friendly manner.

SUMMARY

A method of enabling the sharing of information between applications ona computing device is disclosed herein. The method can include the stepsof receiving a global search request through a first application and—inresponse to the reception of the global search request—prompting for asearch term from a user. The method may further include the steps ofreceiving the search term and—based on the received searchterm—automatically presenting one or more corresponding candidateelements associated with a second application for selection by the user.In addition, the method may include the steps of receiving the selectionof at least one of the candidate elements and linking the selectedcandidate element with the first application such that a user may accessthe selected candidate element from the first application.

In one arrangement, automatically presenting the candidate elements mayinclude automatically presenting one or more candidate elementsassociated with the second application and one or more candidateelements associated with other applications for selection by the user.In another arrangement, the first application can be in an active state,and the second application can be in a non-active state. In yet anotherarrangement, the first application and the second application may bepart of a personal information manager application that is configured tosupport active and non-active states of the first and secondapplications. In one example, the personal information managerapplication and the first and second applications can be secureapplications that are restricted from providing information tonon-secure applications.

In one embodiment, the first application may include one or moreinformation fields, and receiving the global search request through thefirst application may include receiving the global search requestthrough one of the information fields of the first application. Inanother embodiment, linking the selected candidate element with thefirst application can include linking the selected candidate elementwith the information field of the first application. In yet anotherembodiment, receiving the global search request may include detecting aswiping in a first predetermined direction or first predeterminedswiping pattern on a touch screen at the computing device.

The method may further include the steps of closing the firstapplication, re-launching the first application, and receiving theselection of the linked selected candidate element. The method may alsoinclude the step of—in response to the reception of the selection of thelinked selected candidate element—presenting information related to thelinked selected candidate element through the first application. In onearrangement, presenting one or more corresponding candidate elementsassociated with the second application and the other applications forselection by the user can include presenting the corresponding candidateelements in one or more categories based on an association between thecorresponding candidate elements and the second application and theother applications.

A method of presenting a linked element at a computing device is alsodisclosed herein. The method may include the step of—via a firstapplication in an active state—receiving a global search request thatincludes a first search term. The method may also include the step of—inresponse to the reception of the global search request—automaticallydetermining corresponding candidate elements from a set of elementsaccessible to the computing device. In one arrangement, the candidateelements may correspond to the first search term and may be associatedwith one or more other applications in non-active states. In addition,the method may also include the steps of presenting at least a portionof the candidate elements for selection by a user and receiving a userselection of at least one of the candidate elements.

The method may further include the step of generating a selectable linkfor the first application such that when the selectable link isselected, access to information related to the other application withwhich the candidate element is associated is enabled. Furthermore, themethod can include the step of presenting the selectable link in aninformation field of the first application. In one arrangement, thefirst application and the other applications may be secure applicationsthat are restricted from providing data to non-secure applications.

A computing device configured to present a linked element is alsodisclosed herein. The computing device may include a display unit, whichmay be configured to selectively present prompts for user input and toselectively present elements and links for selection by the user. Thecomputing device may also include a processing unit, which may beconfigured to cause—in response to reception of a global search requestat the computing device and through a first application—the display topresent a prompt for a search term. The processing unit may be furtherconfigured to perform an automatic comparison based on the search termto generate one or more corresponding candidate elements associated withother applications. In addition, the processing unit may be configuredto cause the display unit to present the candidate elements forselection by the user and—based on a selection of one or more of thecandidate elements by the user—to generate a link to at least theselected candidate element such that selection of the link through thefirst application causes access to the selected candidate element.

The computing device may also include a memory unit, which may beconfigured to store data relating to one or more predetermined swipingpatterns. In one arrangement, the processing unit may be furtherconfigured to perform an automatic comparison of user input with thedata relating to the predetermined swiping patterns to detect a globalsearch request. In another arrangement, the processing unit may befurther configured to cause the display to present the generated linkthrough the first application. In yet another arrangement, theprocessing unit can be further configured to cause the display topresent the generated link through an information field of the firstapplication. In another arrangement, the processing unit can be furtherconfigured to detect the selection of the generated link through thefirst application and to cause the display to present information of theselected candidate element associated with the generated link.

In one embodiment, the first application and the other applications maybe part of a secure personal information manager installed on thecomputing device. In another embodiment, the processing unit can befurther configured to cause the display to present the candidateelements for selection by the user in a plurality of categories that arebased on the type of the other applications.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The accompanying drawings, which are incorporated herein and form partof the specification, illustrate embodiments of the subject matterdescribed herein and, together with the description, further serve toexplain the principles of such subject matter and to enable a personskilled in the relevant art(s) to make and use the subject matter.

FIG. 1 illustrates an example of a block diagram of a computing devicethat is capable of sharing information between multiple applications onthe device.

FIG. 2 illustrates an example of a method for sharing informationbetween multiple applications on a computing device.

FIG. 3 illustrates an example of operations performed on a computingdevice to enable a global search request on the device.

FIG. 4 illustrates another example of operations performed on acomputing device to enable sharing of information between multipleapplications on the device.

Applicants expressly disclaim any rights to any third-party trademarksor copyrighted images included in the figures. Such marks and imageshave been included for illustrative purposes only and constitute thesole property of their respective owners.

The features and advantages of the embodiments herein will become moreapparent from the detailed description set forth below when taken inconjunction with the drawings, in which like reference charactersidentify corresponding elements throughout. In the drawings, likereference numbers generally indicate identical, functionally similar,and/or structurally similar elements.

DETAILED DESCRIPTION

The following detailed description refers to the accompanying drawingsthat illustrate exemplary embodiments; however, the scope of the presentclaims is not limited to these embodiments. Thus, embodiments beyondthose shown in the accompanying drawings, such as modified versions ofthe illustrated embodiments, may nevertheless be encompassed by thepresent claims.

References in the specification to “one embodiment,” “an embodiment,”“an example embodiment,” “one arrangement,” “an arrangement” or thelike, indicate that the embodiment or arrangement described may includea particular feature, structure, or characteristic, but every embodimentmay not necessarily include the particular feature, structure, orcharacteristic. Moreover, such phrases are not necessarily referring tothe same embodiment or arrangement. Furthermore, when a particularfeature, structure, or characteristic is described in connection with anembodiment or arrangement, it is submitted that it is within theknowledge of one skilled in the art to implement such feature,structure, or characteristic in connection with other embodiments orarrangements whether or not explicitly described.

Several definitions that apply throughout this document will now bepresented. The term “exemplary” as used herein is defined as an exampleor an instance of an object, apparatus, system, entity, composition,method, step or process. The term “communicatively coupled” is definedas a state in which two or more components are connected such thatcommunication signals are able to be exchanged between the components ona unidirectional or bidirectional (or multi-directional) manner, eitherwirelessly, through a wired connection or a combination of both. Inaddition, components may be communicatively coupled through direct orindirect connections, or a combination thereof. A “computing device” isdefined as a component that is configured to perform some process orfunction for a user and includes both mobile and non-mobile devices. Theterms “computer program medium” and “computer readable medium” aredefined as one or more non-transitory components that are configured tostore instructions that are to be executed by a processing unit.

An “application” or an “app” is defined as a program or programs thatperform one or more particular tasks on a computing device. Examples ofan application include programs that may present a user interface forinteraction with a user or that may run in the background of anoperating environment that may not present a user interface while in thebackground. An “active application” is defined as an application in astate such that a user can interact with or begin interacting with theapplication without starting or launching it. A “non-active application”is defined as an application in a state such that the user must start,launch or re-launch the application in order to interact with it. Thatis, non-active applications may run in the background of a device whileit is powered on.

The term “secure application” is defined as an application that has beenmodified or enhanced from its original form to restrict communicationsbetween the application and unauthorized programs, applications ordevices and to restrict operation of the application based on policy orto alter, augment or add features associated with the operation of theapplication (or any combination thereof) or—in the case of theapplication not being modified—an application that is part of a secureworkspace that is protected from data exchanges with applications thatare part of a personal or an unsecure workspace. An “enterpriseapplication” is defined as an application that is associated with anenterprise such that a user interacting with the application isperforming an operation of behalf of the enterprise during at least somepart of the time during the interaction, though not necessarily for eachinteraction. A “target application” is defined as an application thathas been selected for conversion into a secure application. An “unsecureapplication” is defined as an application that has not undergone themodification required to convert the application into a secureapplication and, as such, is unable to obtain data from a secureapplication in view of an obfuscation scheme employed by that secureapplication or is an application that is not part of a secure workspaceand is restricted from accessing data from the secure workspace.

The term “information field” is defined as a logical allocation in whichdata or information may be entered, stored or displayed. As an example,a calendar application may include various information fields such asthe time, location, and duration of a scheduled event. The term“element” is defined as data that can be stored on or accessed bycomponents of a computing device. The term “link” or “shortcut” isdefined as a representation associated with an element and presentablefor selection, such that selection of the link or shortcut enablesexecution of, access to or viewing of the element. The term “setting” isdefined as a state or condition or some relation to a state orcondition.

The term “global search request” is defined as a request for informationacross a number of applications stored on or accessible by a computingdevice. As an example, the search term may include one or more words orphrases, whole or partial. The output of the global search request mayinclude a listing of or links to at least a portion of elements that arerelated to the search term in some appropriately-defined manner, such asthe returned elements having titles or content that include the searchterm.

The term “operating system” is defined as a collection of softwarecomponents that directs a computing device's operations, includingcontrolling and scheduling the execution of other programs and managingstorage, input/output and communication resources. A “processing unit”is defined as one or more components that execute sets of instructions,and the components may be disparate parts or part of a whole unit andmay not necessarily be located in the same physical location. The term“memory” or “memory element” is defined as one or more components thatare configured to store data, either on a temporary or persistent basis.In addition, memory may include a combination of removable, permanent,or semi-permanent components.

An “interface” is defined as a component or group of components thatenable(s) the device to receive input and to present information,whether through visual, audio, written, tactile or other methods, or anycombination of such. A “display” is defined as a component or group ofcomponents that enable(s) the device to present information, content,settings, or the like through visual, audio, tactile, or other methods.A display may be separate from an interface, or may include or becombined with one or more interfaces. A “transceiver” is defined as acomponent or a group of components that enable(s) a device tocommunicate with one or more different devices, whether throughhard-wired connections, wireless connections or a combination of both.

A “user gesture” is defined as one or more physical actions performed bya user that can be detected by a computing device through anyappropriate input technique, including tactile, motion, audio or visual.For example, a user gesture may be a single action or may include aseries of individual actions performed sequentially or together. Theterm “swiping” is defined as movement along one or more paths ordirections that is intended to be translated to an input device that isconfigured to detect such movement.

As explained earlier, a user of a computing device may wish to utilizemultiple applications on the device to perform personal or businesstasks, which may involve sharing of information between theapplications. The process of setting up the information sharing may bedifficult and time-consuming, particularly when the number ofapplications involved is large.

A method and system for enabling the sharing of information betweenapplications on a computing device are described herein to address thisproblem. In particular, the method includes the steps of receiving aglobal search request through a first application and—in response to thereception of the global search request—prompting for a search term froma user. The method further includes the steps of receiving the searchterm and—based on the received search term—automatically presenting oneor more corresponding candidate elements associated with a secondapplication for selection by the user. In addition, the method includesthe steps of receiving the selection of at least one of the candidateelements and linking the selected candidate element with the firstapplication such that a user may access the selected candidate elementfrom the first application.

As such, the method and system provide an easy way for information frommultiple applications on the computing device to be shared. Such afeature may enable typical or basic users to take advantage ofinformation sharing across multiple applications, as those users may nototherwise even attempt such a challenge. In addition, time savings andefficiency in setting up the information sharing may be realized, evenfor sophisticated users of the device.

Referring to FIG. 1, an example of a computing device 100 that enablessharing of information between multiple applications 105 is shown. Thedevice 100 can include one or more applications 105, which may becompletely or partially installed on the device 100 or elsewhere, suchas on a server (not shown) to which the device 100 is communicativelycoupled. As an example, the computing device 100 may be enabled to causeexecution of an application 105 that actually executes at the server.

As is known in the art, the computing device 100 may include aframeworks/services level 110 that provides several abstraction layersthat include system interfaces and that facilitate operation of theapplications 105 and other functions of the device 100. As is also knownin the art, the computing device 100 can include a kernel 115, whichprovides interfaces for the frameworks/services level 110 to interactwith a hardware layer 120. The architecture of the computing device 100may further include other abstraction layers and modules or libraries toenable applications that may be installed on the device 100 to interactwith the components described here and other elements of the device 100.

As shown in the hardware layer 120, the computing device 100 may includea processing unit 130, an interface 135, a memory unit 140, atransceiver 145, and a display 150, any of which may be communicativelycoupled to the processing unit 130. The interface 135 may include one ormore components that are configured to accept input from a user or otherdevice, such as a mouse, keyboard, a touch screen, a microphone, or anyother suitable component. The display 150 may be configured to presentdata, information or the like to a user or some other component and mayinclude, for example, a graphical display, speakers, or any othersuitable component. As previously mentioned, the display 150 may beseparate from the interface 135, may include the interface 135, or maybe combined with one or more interfaces 135. For instance, a touchscreen may perform the functionality of both the interface 135 and thedisplay 150. The memory unit 140 may be a single memory unit or may becomprised of multiple memory units that may operate independently orjointly and can include persistent memory, non-persistent memory orboth. The transceiver 145 may be configured to support either wired orwireless communications with a variety of components, such as othercomputing devices, external networks, landline phones, desktop computersor the like, and may be configured to operate in accordance with variousprotocols. The computing device 100 may include multiple processingunits 130, interfaces 135, transceivers 145, and displays 150 to carryout any of the functions described herein.

Referring to FIG. 2, a method 200 of enabling the sharing of informationbetween applications on a computing device 100 is shown. It is importantto note that the method 200 may include additional or even fewer stepsor processes in comparison to what is illustrated in FIG. 2. Moreover,the method 200 is not necessarily limited to the chronological orderthat is shown in FIG. 2. In describing the method 200, reference may bemade to FIGS. 1 and 3-4, although it is understood that the method 200may be practiced with any other suitable systems, interfaces andcomponents.

In the first part of the method 200, steps 205-230 represent an exampleof how a user may initiate a global search from a first application inwhich the search may cover the first application and/or one or moresecond applications or other programs. The second part of the method,steps 235-260, represent an example of how a global search can enable auser to link information from one application to another.

At step 205, a global search request may be received through a firstapplication, and in response to the reception, a search term may beprompted from a user at step 210, which may be received at step 215. Aswill be explained later, in some embodiments, reception of the globalsearch request through the first application may occur in connectionwith one or more information fields included as part of the firstapplication. Such reception, however, is not so limited and may occurthrough the first application without going through an informationfield. In fact, in some embodiments, the global search request does noteven need to be received through the first or any application.

The global search request may be received through any suitabletechnique, including tactile, audio or visual. As an example, a user mayinitiate a global search request by performing a user gesture, such as aswiping of a touch screen included in the display 150 at the computingdevice 100. As another example, the user may press a button displayed onthe touch screen, or may use a combination of pressing and swiping.

Referring to FIG. 3, an example of performance of a global searchrequest is shown at the computing device 100 on a touch screen display150. The shape depicted as 305 (the grey circle attached to a triangulararrow pointing in a downward direction along the touch screen display150) represents the performance of a user gesture that includes contactwith or a pressing of the touch screen display 150, followed by motionof the input mechanism in the direction of the arrow. As an example, inresponse to this gesture, a dialog box 310 may be presented to the user,through which the user may enter appropriate search terms, as will beexplained below. Although this user gesture may serve as a global searchrequest, the example is certainly not limiting, as any other appropriateuser gesture can be used, including swiping in any direction or patternor multiple swipings performed sequentially or together.

It should also be noted that actions such as pressing and motion, whichmay be part of a user gesture, can be performed using any appropriateinput mechanism, including one or more fingers of the user or a stylus.In addition, such actions may be performed without direct contactbetween the input mechanism and the touch screen display 150. As anexample, the user's finger can hover in proximity to the touch screendisplay 150 and the gesture can be detected through the use of a motiondetection technique. In any case, the detected user gesture may becompared to one or more predetermined gesture patterns using techniquessuch as pattern recognition, text parsing or the like. The predeterminedgesture patterns can be associated with desired actions, which may occurin response to successful matching of the user gesture with one or moreof the patterns. Examples of desired actions include the performance ofa global search request, powering down of the device or opening aprogram, but are not limited to these and may include any other suitableaction. The associations between patterns and desired actions can becreated or implemented by any appropriate entity such as anadministrator or user of the device 100, or may be included as part ofthe software or of a software update.

In addition, the initiation of a global search request is not limited touser gestures, and can be performed using other techniques. For example,voice recognition may detect a predetermined word or phrase, such as“global search” or the like, to cause initiation of a global search. Asanother example, the user may initiate the global search request byselecting an option on a menu or by inputting an appropriate word orphrase, such as “global search,” using previous touch screen techniquesor through the use of an input device included in the interface 135 orotherwise connected to the computing device 100, such as a mouse orkeyboard. As yet another example, the global search request may comefrom another component that is communicatively coupled to or part of thecomputing device 100. For instance, the global search request may beinitiated through another device engaged in a remote session with thecomputing device 100.

As mentioned earlier, a search term may be prompted from the user inresponse to the reception of the global search request, and the searchterm may be received. The prompting may be performed using any suitabletechnique, such as the displaying of the dialog box 310 at the computingdevice 100 for user input or the use of an audio prompt such as “pleaseenter a search term.” Referring once again to FIG. 3, an example ofprompting for a search term is shown. In this example, the user isprompted to enter a search term in the dialog box 310 using thedisplayed (soft) keypad 315 on the computing device 100 on the touchscreen display 150. It should be noted that additional techniques, suchas auto-completion, may be employed in conjunction with the user entryof the search term. That is, before, while or after the user enters thesearch term, suggested results may be displayed for possible selection.The suggested results may be based on the partial entry of the searchterm or any other suitable information.

As another example, the user may speak a search term that can bereceived and detected using speech recognition or other techniques atthe computing device 100 or elsewhere. It should be noted that theseexamples serve only to illustrate the concepts of prompting for andreceiving the search term, and any suitable techniques may be employed,including those previously described.

It should also be noted that in some embodiments, the global searchrequest itself may include a search term. In one embodiment, a user maytype or enter the search term in a dialog box, and then initiate theglobal search on the entered search term. In another embodiment, theuser may speak a phrase such as “global search baseball,” which maycause a global search using the search term of “baseball.” In theseembodiments, although the global search request includes a first searchterm, additional search terms may still be prompted for and may replaceor augment the first search term for purposes of the global search.

In one arrangement, the global search request may be received through afirst application 335. In this example, the first application 335 may bean application that is made up of several other applications. Thisconfiguration is shown in FIG. 3, as the first application 335 mayprovide access to an email application 340, a calendar application 345,a contacts application 350, a notes application 355 and/or a tasksapplication 360. Of course, the first application 335 may notnecessarily be comprised of other applications, and the listing ofapplications here that form the first application 335 is not meant to beexhaustive. In fact, any combination of the applications 340-360 may bepart of the first application 335. The first application 335, as anotherexample, may provide access to a file database 365, a settings section370 and/or a locking mechanism 375. In this case, because it is made upof other applications that involve social or business events andcontacts, the first application 335 may be referred to as a personalinformation manager (PIM) application.

As an example, initiating a global search request through the firstapplication 335 may cause a search to be performed across one or moreapplications installed on the device 100. Here, the search may beperformed on the applications 340-360 that form the first application335, the file database 365 and any other suitable program or repository.Even though the search may be conducted over a wide variety ofapplications, programs or databases on the device 100, the search may berestricted to only certain elements. For example, the search may berestricted to secure applications, applications that comprise the firstapplication 335 or applications that are associated with one another,such as those that are signed by the same developer or entity. Thisrestriction can ensure the protection of confidential data fromunauthorized applications or programs.

As another example, the domain involved in the global search may be theentire universe of elements stored on or accessible to the device 100.However, this example is not limiting, as the domain may be just aportion of that universe of elements. In another example, the globalsearch may target only those elements stored on the device 100 that areassociated with one particular user's account on the device 100, whichmay be set up to support accounts for multiple users. In yet anotherexample, the global search may target only the secure elementsaccessible to the device 100, while ignoring the non-secure elements.

Referring once again to the method 200 of FIG. 2, once the global searchis initiated, candidate elements from a set of elements accessible tothe computing device 100 may be automatically determined at step 220. Atstep 225, one or more of the candidate elements may be automaticallypresented to the user and at step 230, selection of at least one of thecandidate elements may be received.

As noted earlier, determination of the candidate elements may be atleast partially based on a global search of the received search termagainst a particular collection of data, such as the applications340-360 or other programs stored on or accessible to the device 100, ora portion thereof. As an example, the items that are associated with thesearched collections of data may be referred to as elements, and anelement that matches or substantially matches a search request may bereferred to as candidate elements. In one embodiment, the elements maybe of different types, such as emails and calendar events in a user'saccount, but not necessarily so. The elements may be two or moredifferent types and may even be just a single type. It should be pointedout that the collection of data that is searched may be specified by theuser, or may be predetermined by the user or another person, such as anadministrator, or may even be specified by the software. There areseveral examples of candidate elements 320 shown at the bottom of FIG.3.

In one arrangement, an element may be determined to be a candidateelement 320 if the element includes the search term in at least one ofits parts, including, but not limited to, the title, subject,description or content of the element. In another arrangement,particularly for a search term that includes multiple terms, theprevious criteria may be extended to cover one, all, or any number ofthe multiple terms in the search term. As such, the multiple terms maybe required to be in some type of order, but this need not be the case.In fact, these arrangements only serve as examples, and any techniqueknown in the art of searching may be used to determine the candidateelements.

The candidate elements 320 may be presented to the user in any suitablemanner for selection, display or other purpose. In one embodiment, allof or a portion of the candidate elements 320 can be presented to theuser in some fashion, such as alphabetical order. In another embodiment,all of or a portion of the candidate elements 320 can be presented tothe user in one or more categories 330 based on an association betweenthe corresponding candidate elements 320 and the type of element or anapplication that typically executes the element. For instance, filesthat are determined as candidate elements 320 may be included as part ofa “files” category 330 or as part of a “file manager” category 330associated with an application that can execute storage and access tothe files. As another example, emails that are candidate elements 320may be grouped together in an email category 330. In addition, thenumber of candidate elements 320 determined or presented for eachcategory 330 may be limited to a maximum value appropriately specified,but this need not be the case.

An example of presenting candidate elements 320 in multiple categories330 according to type or associated application for execution is shownat the computing device 100 on the touch screen display 150. In theexample, the search term “John” is entered in the dialog box 310, and aglobal search on that term generates corresponding candidate elements320, which are presented according to categories 330 that includecontacts, email, calendar, and notes. Note that the candidate elements320 are related to the search term in some manner, which may bedifferent for each of the categories 330 or type of associatedapplication. Accordingly, in this example, the contacts category 330includes two contacts with the first name John, the email category 330includes some emails sent by John Mitchell, and the calendar category330 includes an event that contains John Stevenson's name in its title.While this example serves to illustrate candidate elements resultingfrom a global search, it is certainly not limiting. For instance, thecandidate elements 320 in the email category 330 for the search term“John” may include emails with that name somewhere in the body of themessage, though not sent from or to any person named John.

Once the candidate elements 320 are presented, the user may select oneor more of them, such as to access information that is associated withthe selected candidate element 320. For example, the user may select thecandidate element 320 that includes contact information about a personnamed John to acquire a contact number for that individual. As can beseen, this process enables a user to conduct a global search at a firstapplication, with various applications, programs and repositories beingthe focus of the search.

In addition to simply choosing a candidate element 320 to obtaininformation, a user may be able to integrate links into a firstapplication through selection of a candidate element 320. Such selectionof the candidate elements 320 may be performed using anypreviously-described techniques, including tactile or audio, or may beperformed through the use of a menu. The selection may also be performedat a remote location with respect to the computing device 100. One ormore of the candidate elements 320 may be selected, and in the case ofmultiple elements 320, selection may be performed sequentially ortogether, and the selection may be received at the computing device 100.

In one arrangement, the determined candidate elements 320 can beassociated with a second application and can be presented as such. Inother arrangements, a portion of the candidate elements 320 may beassociated with the second application, while another portion may beassociated with other applications, which may even include the firstapplication in some of those arrangements. Accordingly, the automaticpresentation of the candidate elements 320 for user selection mayinclude the presentation of one or more candidate elements 320associated with the second application and the presentation of one ormore candidate elements 320 associated with other applications. Inaddition, the automatic presentation of the candidate elements 320 inone or more categories 330 may be based on an association between thecorresponding candidate elements 320 and the second application and theother applications.

Referring once again to the method 200 shown in FIG. 2, the selectedcandidate element associated with a second application may be linkedwith the first application at step 235 such that a user may access theselected candidate element from the first application. At step 240, aselectable link for the first application may be generated such thatwhen the selectable link is selected, access to information related tothe second application is enabled.

As described earlier, the candidate elements 320, including the selectedones, can be associated with one or more other applications. In oneembodiment, the selected candidate element 320 is associated with asecond application, and a link between the selected candidate element320 and the first application enables information sharing between thefirst and second applications. Recall that a link is a representationassociated with an element, and selection of the link can enableexecution of, viewing of or other access to the element.

In one arrangement, the link may be presented to the user for selectionon the display 150, and may include words or phrases to indicate theidentity of the linked element. For instance, a link to an email mayinclude the subject of the email. The visual representation of the linkmay be formatted in a manner that indicates that it actually is a link,for instance through underlining, italics or bold face or encapsulationwithin a shape such as an ellipse.

Referring to FIG. 4, an example of presenting a selectable link througha first application 450 to an element associated with a secondapplication is shown on the computing device 100 using a touch screendisplay 150. In this example, a global search request is receivedthrough a first application 450, which in this case is a calendar orother application that can create and track tasks. Also, the firstapplication 450 may include several information fields 405, such as thetask name, priority, reminder settings, list information and notes.

In this case, the global search request may be initiated through thefirst application 450 via the user pressing the touch screen display 150at a location within the visual boundaries of the first application 450,such as the circle 410. It should be noted that this example of pressingthe touch screen display 150 at the circle 410 is not limiting. In thisand other embodiments, any of the previously described techniques can beused to indicate that a global search is to be performed through acertain information field, including through the use of user gestures,menus, audio or the like.

Returning to the example shown in FIG. 4, the pressing of the circle 410may result in a cursor appearing within the notes information field 405.A global search request may then be initiated with a user gesture, suchas the one depicted by the shape 415, in which an input mechanism (suchas the user's finger) presses the touch screen display 150 at thecircular portion of 415 and swipes to the left along the touch screendisplay 150. The fact that the cursor was located in the notesinformation field 405 while the global search request was initiated mayresult in the global search being started through the notes informationfield 405. However, this example is certainly not limiting, and theglobal search request may be performed in any other suitable manner,including through the use of a menu.

As an example, in response to a global search performed using the searchterm “Joe” input into the dialog box 420, candidate elements 425 and 428are presented to the user for selection, with the particular candidateelement 428 being an email labeled “RE: meeting with Joe.” Thiscandidate element 428 may be associated with the second application orany other application, including the first application 450. Selection ofthe email 428 depicted by the button press 430 results in the email 428being linked to the “notes” information field 405 of the firstapplication (calendar). Accordingly, a link 435 to the selected email428 can be generated and presented to the user as part of the notesinformation field 405, in this example, with the title of the email 428appearing in the notes information field 405 encapsulated by anelliptical shape. Selection of the link 435 can enable user access tothe email 428 through the first application 450, which may includeopening the email 428, replying to it or other suitable actions. Assuch, the user may establish links to various pieces of informationassociated with applications that are different from the applicationthrough which the link is presented.

In this example and other embodiments, selection of the link to theelement associated with the second application may cause viewing,execution or other access to the element. As in the previous example,selection of a link to an email may cause opening of the email orreplying to it. As another example, selection of a link to a contact maycause the computing device 100 to place a phone call to the contact orto inquire if the user would like to place that call. It should bepointed out that different selection actions for a particular elementmay cause different resulting actions to be performed on that element.For instance, left-clicking of a mouse on the link may cause executionof the element (by the second application) while right-clicking on theelement may produce other options for the user, such as the ability toview the properties or location of the element. These examples are notlimiting, as any appropriate actions may be performed in response toselection of the corresponding link.

Returning to the method 200 shown in FIG. 2, the first application,which may provide a link to a selected candidate element associated withthe second application, may be closed at step 245 and re-launched atstep 250. At step 255, selection of the linked selected candidateelement may be received through the first application. In response tothe reception, information related to the linked selected candidateelement may be presented at step 260.

In some embodiments, a link to the selected candidate element or itscorresponding application of execution may be created and made availablewithout the first application needing to be closed and re-launched. Inother embodiments, however, these or other steps may be required inorder for the selectable link to be presented or functional. Thesescenarios may result from settings associated with the firstapplication, the functionality or inherent nature of the firstapplication, the way in which the software (or an update to it) for thefirst application was written or other suitable reason. In any case, thelink may be selected to cause information related to the selectedcandidate element to be presented, as previously described. In addition,the selection may also cause other actions, such as execution or viewingof the selected candidate element.

In another arrangement, the computing device 100 may support eithersecure or non-secure applications or both. A secure application may bean application that has been adapted or wrapped to secure theapplication from interactions from unauthorized applications or programsand to enable management of the application. Such management may includelimiting the application to only processing requests from other secureor authorized applications or creating a whitelist of sites that theapplication is permitted to access. As another example, the secureapplication may be forced to request a passcode or some otherauthentication information from a user before it may be launched orexecuted. The secure application may also be restricted to operating insecure workspaces installed on the computing device 100. Additionalinformation relating to secure applications and their management can befound in U.S. Pat. No. 8,695,060, issued on Apr. 8, 2014, which isincorporated herein by reference.

As an example, a PIM application operating on the computing device 100may support either secure or non-secure applications or bothsimultaneously. The PIM application may also be configured to supportapplications in both active and non-active states, and the informationsharing techniques described above may be applied to applications ineither the active or non-active states or both. For instance,information may be shared (in either direction) between a firstapplication in an active state and a second application in a non-activestate. In some embodiments, a secure PIM application may support a firstand second application, both secure, and techniques previously describedfor sharing of information may be employed between those two secureapplications. However, the techniques are not so limited and actuallymay be applied to any combination of secure and non-secure applications.In one such embodiment, a non-secure application may provide informationto one or more secure applications, while the secure applications may berestricted from providing information to the non-secure application. Inthis scenario, the incorporation of a link in a first secure applicationto information associated with a second secure application or a secondwhitelisted non-secure application may be permitted. In contrast, theincorporation of a link in a secure application to informationassociated with an unauthorized non-secure application may be blocked.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. It will be understood by those skilled in the relevantart(s) that various changes in form and details may be made thereinwithout departing from the spirit and scope of the subject matter asdefined in the appended claims. Accordingly, the breadth and scope ofthe present subject matter should not be limited by any of theabove-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents. Theflowchart and block diagrams in the figures illustrate the architecture,functionality, and operation of possible implementations of systems,methods and computer program products according to various embodiments.In this regard, each block in the flowchart or block diagrams mayrepresent a module, segment, or portion of code, which comprises one ormore executable instructions for implementing the specified logicalfunction(s). It should also be noted that, in some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved.

What is claimed is:
 1. A computing device configured to present a linkedelement, comprising: a housing; a display unit mounted to the housing,wherein the display unit is configured to: selectively present promptsfor user input; and selectively present elements and links for selectionby a user; a processor disposed in the housing, wherein the processor isconfigured to: cause, in response to reception of a global searchrequest at the computing device and through a first application that isinstalled on the computing device, the display to present a prompt for asearch term; perform an automatic comparison based on the search term togenerate one or more corresponding candidate elements associated withother applications that are installed on the computing device; cause thedisplay unit to present the candidate elements for selection by theuser; and based on a selection of one or more of the candidate elementsby the user, generate a link to at least the selected candidate elementand incorporate the generated link into the first application, such thatselection of the link through the first application causes access to theselected candidate element; and a memory unit, wherein the memory unitis configured to store data relating to one or more predeterminedswiping patterns, and wherein the processor is further configured toperform an automatic comparison of user input with the data relating tothe predetermined swiping patterns to detect a global search request. 2.The computing device according to claim 1, wherein the processor isfurther configured to: detect the selection of the generated linkthrough the first application; and cause the display to presentinformation of the selected candidate element associated with thegenerated link.
 3. The computing device according to 1, wherein thefirst application and the other applications are part of a securepersonal information manager installed on the computing device.
 4. Thecomputing device according to claim 1, wherein the processor is furtherconfigured to cause the display to present the candidate elements forselection by the user in a plurality of categories that are based on thetype of the other applications.
 5. The computing device according toclaim 1, wherein said causing access to the selected candidate elementcomprises causing access to the selected candidate element through thefirst application.
 6. The computing device according to claim 1, whereinsaid causing access to the selected candidate element comprisespresenting information related to the selected candidate element throughthe first application.